/**
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2009，所有权利保留。
 * 
 * 项目名：	rumba-widget2
 * 文件名：	RTextBox.java
 * 模块说明：	
 * 修改历史：
 * Jan 24, 2009 - lxm - 创建。
 */
package com.hd123.rumba.gwt.widget2.client.form;

import com.hd123.rumba.gwt.widget2.client.fielddef.FieldDef;

/**
 * 文本输入框控件。
 * <p>
 * 
 * <b>控件元素结构</b><br>
 * div class=field<br>
 * ..[input type=text class=input]<br>
 * ..[? class=buttons]<br>
 * ..[div class=suffix]<br>
 * ..[? class=tip]<br>
 * ..[div class=note]
 * <p>
 * 
 * <b>CSS Style Rules</b> <ol type=disc>
 * <li>.rb-TextBox { div }</li>
 * <li>.rb-TextBox-disabled { div }</li>
 * <li>.rb-TextBox .input {}</li>
 * <li>.rb-TextBox .input-disabled { 当不可用状态时的输入框 }</li>
 * <li>.rb-TextBox .input-readonly { 当只读状态时的输入框 }</li>
 * <li>.rb-TextBox .input-focused { 当获得焦点状态时的输入框 }</li>
 * <li>.rb-TextBox .input-error { 当提示错误时的输入框 }</li>
 * <li>.rb-TextBox .input-warning { 当提示警告时的输入框 }</li>
 * <li>.rb-TextBox .input-empty { 当输入框中内容为空时 }</li>
 * <li>.rb-TextBox .buttons {  }</li>
 * <li>.rb-TextBox .suffix { div }</li>
 * <li>.rb-TextBox .note {  }</li> </ol>
 * 
 * @author lxm
 * 
 */
public class RTextBox extends RTextBoxBase {

  private static final String STYLENAME_DEFAULT = "rb-TextBox";

  /**
   * 创建对象实例。
   */
  public RTextBox() {
    super(new RTextInput());
    setStyleName(STYLENAME_DEFAULT);
  }

  /**
   * @param fieldDef
   *          字段定义
   */
  public RTextBox(FieldDef fieldDef) {
    this();
    setFieldDef(fieldDef);
  }

  /**
   * 取得当前输入值。
   * 
   * @return
   */
  public String getValue() {
    return getText();
  }

  /**
   * 设置当前输入值。
   * 
   * @param value
   */
  public void setValue(String value) {
    setText(value);
  }

  /**
   * 清除输入值
   * 
   */
  public void clearValue() {
    setValue(null);
  }

  /**
   * 取得文本输入框允许的最大输入长度（字符数）。
   * 
   * @return
   */
  public int getMaxLength() {
    return super.getMaxLength();
  }

  /**
   * 设置文本输入框允许的最大输入长度（字符数）。
   * 
   * @param length
   */
  public void setMaxLength(int length) {
    super.setMaxLength(length);
  }

  /**
   * 取消maxLength的设置
   * 
   */
  public void removeMaxLength() {
    super.removeMaxLength();
  }
}
